﻿namespace _7.模板方法模式;

public class Program
{
    static void Main(string[] args)
    {
        /*
         * 模板方法模式（Template Method）：定义一个操作中的算法的骨架，而将一些步骤延迟到子类中。
         * 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
         */

        Console.WriteLine("学生甲抄的试卷：");
        TestPaper studentA = new TestPaperA();//将子类的声明改成了父类，利用了多态的特性，实现了代码复用。
        studentA.TestQuestion1();
        studentA.TestQuestion2();
        studentA.TestQuestion3();

        Console.WriteLine("----------------------------");

        Console.WriteLine("学生甲抄的试卷：");
        TestPaper studentB = new TestPaperB();
        studentB.TestQuestion1();
        studentB.TestQuestion2();
        studentB.TestQuestion3();

        Console.ReadLine();
    }
}